package com.ryujung.greedy;

class Solution376 {
    /**
     * 思路：
     * 遍历数组，对比当前和下一个差值是正还是负数，
     * 代表下一个是上升还是下降
     * 如果是上升，就将上升序列=当前下降序列+1，
     * 如果是下降，就将下降序列=当前上升序列+1，
     * 最后返回上升和下降的最大值即可
     *
     */
    public int wiggleMaxLength(int[] nums) {
        int up = 1, down = 1;
        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i] > nums[i + 1]) {
                down = up + 1;
            } else if (nums[i] < nums[i + 1]) {
                up = down + 1;
            }
        }
        return Math.max(up, down);
    }

    public static void main(String[] args) {
        Solution376 s = new Solution376();
        System.out.println(s.wiggleMaxLength(new int[]{1, 2, 1, 3, 3, 4, 2}));
    }
}